package com.wu.system.controller.wx;

import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.wu.common.utils.RedisKeys;
import com.wu.common.utils.RedisUtils;
import com.wu.common.utils.Result;
import com.wu.dao.sys.vo.SysOrgVO;
import com.wu.entity.weixin.po.MyJwWebJwid;
import com.wu.entity.weixin.po.WeixinAccount;
import com.wu.service.weixin.service.WxJwidService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("wx/account")
@AllArgsConstructor
@Tag(name="微信公众号管理")
public class WxAccountController {

    private final RedisUtils redisUtils;
    @Autowired
    private WxJwidService wxGzUserService;

    @GetMapping("list")
    @Operation(summary = "列表")
    @PreAuthorize("hasAuthority('sys:org:list')")
    public Result<List<WeixinAccount>> list(){
        Map<String, WeixinAccount> resultMap = (Map<String, WeixinAccount>) redisUtils.get(RedisKeys.getWxAccountMpKey(""));
        List<MyJwWebJwid> list = wxGzUserService.queryAll();
        List<WeixinAccount> re = new ArrayList<>();
        resultMap.forEach((k, v) -> re.add(v));
        re.forEach(item->{
            for(MyJwWebJwid entity : list){
                if(entity.getWeixinAppId().equals(item.getAccountappid())){
                    item.setAccountnumber(entity.getJwid());
                    break;
                }
            }
        });
        return Result.ok(re);
    }
}
